[VB]为什么使用 ExitWindowsEx 函数没办法实现关闭计算机

来源:百度知道 编辑:UC知道 时间:2024/05/10 13:04:15
程序如下:
'EWX_FORCE 强迫中止没有响应的进程
'EEWX_LOGOFF 中止进程,然后注销
'EEWX_REBOOT 重新引导系统
'EEWX_SHUTDOWN 关闭系统
'EWX_POWEROFF 关闭系统电源
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long '定义ExitWi...函数
Private Sub Command1_Click()

Call ExitWindowsEx(EEWX_SHUTDOWN + EWX_POWEROFF, 0)

End Sub
我的系统是XP的.无论使用哪一个参数都是注销,不能实现重启或关机.把所有的参数加上都是注销!能帮忙实现看是怎么回事吗?
请先看清楚题目!是VB的.不是VC/DELPHI/C#...
-----
能帮忙给出调整权限的代码吗?定义API函数可以省略

退出操作系统可以调用Windows API的ExitWindowsEx函数。在Win9x下,只要简单地调用ExitWindowsEx函数就可以实现关机或者重新启动。但是在Win 2000/XP下调用ExitWindowsEx函数时,还需要先调用AdjustTokenPrivileges函数。下面的例子在Win9x和Win 2000/XP下都可以使用。请参考程序中的注释。
例子:
1、建立一个窗体,在上面放置4个按钮,按钮设置如下:
控件 控件名 Caption属性
---------------------------------------------------
CommandButton cmdLogoff 注销
CommandButton cmdForceLogoff 强制注销
CommandButton cmdShutdown 关机
CommandButton cmdForceShutdown 强制关机
2、将下面的代码加入窗体中:
Option Explicit
Private Const EWX_LogOff As Long = 0
Private Const EWX_SHUTDOWN As Long = 1
Private Const EWX_REBOOT As Long = 2
Private Const EWX_FORCE As Long = 4
Private Const EWX_POWEROFF As Long = 8

'ExitWindowsEx函数可以退出登录、关机或者重新启动系统
Private Declare Function ExitWindowsEx Lib "user32" _
(ByVal dwOptions As Long, _
ByVal dwReserved As Long) As Long

'GetLastError函数返回本线程的最后一次错误代码。错误代码是按照线程
'储存的,多线程也不会覆盖其他